### Регистрация пользователя
Система использует внешний сервер аутентификации на базе Keycloak

![Схема авторизации](./img/law-cli-authority.jpg)

### Flaw создания нового пользователя

Для того чтобы стать клиентом, адвокатом или психологом необходима регистрация

### Frontend

Регистрация пользователей осуществляется с помощью Keycloak (KC)

После аутентификации в KC пользователь возвращается на главную страницу после чего имеет возможность зайти в кабинет

Компонент кабинета - src/app/components/cabinet/cabinet.component.ts

Метод ngOnInit() осуществляет запрос в сервис авторизации - src/app/service/auth.service.ts

Сервис авторизации производит GET запрос в бэкэнд

Бэекэнд получает токен пользователя, получает из него необходимые данные и делает запрос в БД для поиска клиента.

Принцип работы бэкэнда указан в репозитории els-back

Если клиента нет в БД, тогда возвращает TokenUser и кабинет открывает страницу создания нового пользователя.

Пользователь вводит недостающие данные
* Отчество
* Телефон
* Кем он является:
  * Клиент
  * Адвокат - добавляет специализацию и вводит реестровый номер
    * Экономика и финансы
    * Уголовное законодательство
    * Семейное право
    * Консультации
  * Психолог - добавляет специализации и сведения об образовании
    * Психотравмирующая ситуация у взрослого
    * Психотравмирующая ситуация у ребенка
    * Психотравмирующая ситуация в семье
    * Постравматическое стрессовое расстройство ПТСР
  
* Фотография (для адвоката и психолога обязательно)

После нажимает кнопку зарегистрироваться

Дальше работает сервис авторизации, который отправляет все данные в бэкэнд и пользователь создается


